KNN মডেল Training এবং Prediction

Machine Learning - সাইকিট-লার্ন (Scikit-Learn) - K-Nearest Neighbors (KNN)
200

K-Nearest Neighbors (KNN) একটি খুবই জনপ্রিয় এবং সহজ মেশিন লার্নিং অ্যালগরিদম যা supervised learning এর মধ্যে পড়ে। KNN মূলত classification এবং regression উভয় সমস্যা সমাধানে ব্যবহৃত হয়। KNN অ্যালগরিদম একটি পয়েন্টের শ্রেণী (বা মান) পূর্বাভাস করতে তার কাছের Kটি পয়েন্টের মধ্যে সবচেয়ে সাধারণ শ্রেণী (বা গড় মান) নির্বাচন করে।

KNN এর মৌলিক ধারণা

KNN মডেল মূলত এইভাবে কাজ করে:

  1. Training Phase: KNN মডেলে কোন প্রশিক্ষণ করা হয় না, কারণ এটি instance-based learning। এখানে, মডেলটি ডেটাসেটের সব পয়েন্টকে মনে রাখে। প্রশিক্ষণ পদ্ধতিটি কেবল ডেটা সংগ্রহ করে এবং কোনও মডেল তৈরি না করে।
  2. Prediction Phase: নতুন ইনপুটের জন্য, KNN অ্যালগরিদমটি সেই ইনপুট পয়েন্টের সবচেয়ে কাছের Kটি পয়েন্ট (কোম্পনেট পয়েন্ট) নির্বাচন করে এবং তাদের মধ্যে সবচেয়ে সাধারণ ক্লাস বা গড় মূল্য গ্রহণ করে।

KNN মডেল Training এবং Prediction এর ধাপগুলো

১. ডেটাসেট লোড এবং প্রি-প্রসেসিং

KNN মডেল তৈরির প্রথম ধাপ হল ডেটাসেট লোড করা এবং প্রি-প্রসেসিং করা। এখানে ডেটা স্কেলিং গুরুত্বপূর্ণ, কারণ KNN পদ্ধতিতে দূরত্বের হিসাব করা হয়।

২. KNN মডেল Training

KNN মডেল training পদ্ধতির মধ্যে ডেটা ব্যবহার করে কোনও মডেল তৈরি করা হয় না। এই পদ্ধতিতে শুধুমাত্র ডেটাসেটের তথ্য রাখা হয় এবং মডেলটির সমস্ত পয়েন্টকে মনে রাখা হয়।

৩. KNN মডেল Prediction

নতুন ডেটা আসলে, KNN মডেলটি ইনপুট পয়েন্টের সবচেয়ে কাছের Kটি পয়েন্ট নির্বাচন করে এবং তাদের মধ্যে সবচেয়ে সাধারণ শ্রেণী বা গড় মান নির্বাচন করে।


KNN মডেল Training এবং Prediction উদাহরণ

আমরা scikit-learn লাইব্রেরি ব্যবহার করে KNN মডেল তৈরি এবং পূর্বাভাস দিচ্ছি। উদাহরণ হিসেবে, আমরা Iris ডেটাসেট ব্যবহার করব।

১. ডেটাসেট লোড এবং প্রি-প্রসেসিং:

from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.neighbors import KNeighborsClassifier
from sklearn.metrics import accuracy_score

# Iris ডেটাসেট লোড করা
data = load_iris()
X = data.data  # ইনপুট ফিচার
y = data.target  # টার্গেট ক্লাস

# ডেটা প্রি-প্রসেসিং (স্ট্যান্ডার্ড স্কেলিং)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# ডেটা ভাগ করা (Train ও Test)
X_train, X_test, y_train, y_test = train_test_split(X_scaled, y, test_size=0.3, random_state=42)

২. KNN মডেল Training:

# KNN মডেল তৈরি করা (K=5)
knn = KNeighborsClassifier(n_neighbors=5)

# ট্রেনিং ডেটা দিয়ে মডেল ট্রেনিং
knn.fit(X_train, y_train)

৩. KNN মডেল Prediction:

# টেস্ট ডেটার জন্য পূর্বাভাস করা
y_pred = knn.predict(X_test)

# পূর্বাভাসের একুরেসি পরিমাপ করা
accuracy = accuracy_score(y_test, y_pred)
print(f"Accuracy: {accuracy * 100:.2f}%")

KNN মডেল এর বিভিন্ন টিউনিং:

  1. K এর মান নির্বাচন:
    KNN মডেলের জন্য একটি গুরুত্বপূর্ণ প্যারামিটার হল K, অর্থাৎ কতটি নিকটতম পয়েন্ট ব্যবহার করা হবে। সাধারণত, K-এর মানটি odd (অদ্বিতীয়) রাখা ভালো, যাতে শ্রেণী ফ্লিপিংয়ের সম্ভাবনা কম থাকে।
  2. ডিস্টেন্স মেট্রিক্স:
    KNN ডিস্টেন্স মেট্রিক্স হিসাবে সাধারণত Euclidean distance ব্যবহার করে, তবে Manhattan distance বা অন্যান্য মেট্রিক্সও ব্যবহার করা যেতে পারে।
knn = KNeighborsClassifier(n_neighbors=5, metric='manhattan')
  1. ওজন (Weights):
    KNN মডেলে প্রতিটি প্রতিবেশীর জন্য ওজন দেয়া যেতে পারে। কিছু ক্ষেত্রে uniform weights ব্যবহার করা হয়, যেখানে প্রতিটি প্রতিবেশীর জন্য সমান গুরুত্ব দেওয়া হয়, আবার distance weights ব্যবহার করলে দূরবর্তী প্রতিবেশীদের কম গুরুত্ব দেওয়া হয়।
knn = KNeighborsClassifier(n_neighbors=5, weights='distance')

KNN মডেল এর সুবিধা এবং অসুবিধা

সুবিধা:

  • সহজ এবং কার্যকরী: KNN একটি সহজ এবং কার্যকরী অ্যালগরিদম, যা কম্পিউটেশনালভাবে সহজ।
  • অপারেশনাল স্টেপস নেই: KNN মডেল ট্রেনিং করার জন্য কোনও গুরুতর প্রশিক্ষণ প্রক্রিয়া নেই, শুধু ডেটা লোড করা হয়।
  • নন-প্যারামেট্রিক: এটি একটি নন-প্যারামেট্রিক মডেল, অর্থাৎ এটি কোনো নির্দিষ্ট ফাংশনকে অনুমান করে না, যা ফ্লেক্সিবিলিটি প্রদান করে।

অসুবিধা:

  • কম্পিউটেশনাল খরচ: ডেটাসেট বড় হলে, নতুন ডেটার জন্য প্রতিবার সমস্ত ডেটা পরীক্ষা করা সময়সাপেক্ষ এবং ব্যয়বহুল হতে পারে।
  • কোরিলেশন: KNN পদ্ধতিটি উচ্চ মাত্রার ডেটায় কার্যকরী নয় (high dimensional data), যেহেতু curse of dimensionality এড়ানো সম্ভব হয় না।

সারাংশ

K-Nearest Neighbors (KNN) একটি সহজ এবং জনপ্রিয় মেশিন লার্নিং অ্যালগরিদম, যা classification এবং regression উভয় কাজের জন্য ব্যবহার করা যায়। KNN মডেলটি ডেটার কাছের Kটি পয়েন্টের উপর ভিত্তি করে পূর্বাভাস প্রদান করে। এতে মডেল ট্রেনিংয়ের জন্য কোনও প্রশিক্ষণ প্রক্রিয়া নেই, তবে পূর্বাভাসের জন্য পুরো ডেটাসেট পরীক্ষা করা হয়, যা কখনও কখনও ধীরগতির হতে পারে। KNN মডেলের পারফরম্যান্স এবং টিউনিংয়ের জন্য K এবং distance metric এর প্যারামিটারগুলি গুরুত্বপূর্ণ।

Content added By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...